#include <iostream>
#include <vector>
#include <sstream>

int main()
{
    int M;
    std::cin >> M;
    std::cin.ignore();

    std::string str;
    std::getline(std::cin, str);
    std::istringstream iss(str);

    int n;
    std::vector<int> nums;
    while (iss >> n)
    {
        nums.push_back(n);
    }

    std::vector<int> dp(M + 1, 0);
    for (int i = 1; i <= nums.size(); i++)
    {
        // for (int j = M; j >= i; j--)
        for (int j = i; j <= M; j++)
            dp[j] = std::max(dp[j], dp[j - i] + nums[i - 1]);
    }

    std::cout << dp[M] << std::endl;

    return 0;
}